/* Copyright 2001,2002,2003 NAH6
 * All Rights Reserved
 *
 * Parts Copyright DoD, Parts Copyright Starium
 *
 */
          /*LINTLIBRARY*/
          /*PROTOLIB1*/
/**************************************************************************
*                                                                         *
* INCLUDE FILE
*		FILTER.h
*
* FUNCTION
*		FILTER structure
*
***************************************************************************
*
*
*
*
**************************************************************************/

#define MAXORDER	16		/* maximum filter order		 */

typedef struct
{	int order, data_length;
	float memory[MAXORDER+1], coef[MAXORDER+1];
} FILTER;

FILTER	makefilt(), makefilt_dynamic();

/*  Function prototypes */

/* -------------- do_pfilt.c -------------- */
void do_pfilt(
FILTER *flt,
float data[]);

void do_pfilt_dynamic(
FILTER 	*flt,
float	coef[],
float 	data[]);

/* -------------- do_zfilt.c -------------- */
void do_zfilt(
FILTER *flt,
float data[]);

void do_zfilt_dynamic(
FILTER 	*flt,
float	coef[],
float 	data[]);

/* -------------- filters.c -------------- */
void HPF_InSpeech(
float	speech[F_LEN]);

void HPF_OutSpeech(
float	speech_in[SF_LEN],
float	speech_out[SF_LEN]);

void FilterImpulseResponse(
float	h[SF_LEN],
float	coef[ORDER+1]);

/* -------------- makefilt.c -------------- */
FILTER makefilt(
float 	coef[],
int 	f_order, 
int	data_length);

FILTER makefilt_dynamic(
int 	f_order, 
int	data_length);

